מבחינת MYSQL אני צריך לעשות כמה שאילתות שירצו הרבה מאוד פעמים..

מבחינת השרת מה פחות מכביד ?

4 תשובות

avatar ענה shlomo120 ב 05 לפברואר 2013 #

נראה לי שעדכון מכביד יותר , כי הוא צריך למצוא את השורה , לפתוח אותה , לערוך אותה ולשמור אותה .
ההכנסה רק פותחת שורה חדשה ושומרת אותה .

זה לא מדעי , אבל נראה לי שעדכון יותר כבדה ...

avatar ענה intval ב 05 לפברואר 2013 #

אם את משתמש ב innodb אז כמעט אותו דבר כל עוד העדכון מתבצע לפי העמודה שהיא מפתח ראשי.
כשאני אומר כמעט - יותר הגיוני שהעדכון יותר כבד, אבל גם הכנסה צריכה לבדוק שאין שכפול שורות לפי מפתח ראשי
לנעול את הטבלה ולא רק את השורה ולעשות אותה פעילות כתיבה לדיסק. יש טיפה פחות קריאה מדיסק, אבל ההבדל ביניהם הוא יחסית זניח.

כל עוד אתה לא מנסה לעשות מליון הכנסות/עדכונים בשניה.
אז הדבר הכי נכון יהיה למדוו בעצמך בהתאם למבנה הטבלה והאינדקסים שלך.

avatar ענה kivi ב 06 לפברואר 2013 #

אני לא בטוח שעדכון עדיף כי אם מסתכלים על פעולה שאני צריך לעשות אלף פעמים, עדיף לעדכן את השורה במסד מאשר לפתוח אלף שורות שבסופו של דבר יכבידו על השרת..

avatar ענה mayden ב 08 לפברואר 2013 #

באתי לענות לך לפני כמה ימים, אבל אז הבנתי שאני לא יכול להגיב כי אני לא רשום לאתר.. (*שיעול* אלכס הכל מאהבה! *שיעול*).

בכל מקרה, הסוגיה הזאת כבר עלתה לדיון ונראה לי שמהדיון הבא תוכל להפיק את המיטב:
http://stackoverflow.com/questions/7299731/update-vs-insert-performance